热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

机器学习|PCA

一.基本原理是一种分析简化数据集的技术PCA从原始变量出发,通过旋转变化(即原始变量的线性组合)构建出一组新的,互不相关

一.基本原理

是一种分析简化数据集的技术

PCA从原始变量出发,通过旋转变化(即原始变量的线性组合)构建出一组新的,互不相关的新变量,这些变量尽可能多的解释原始数据之间的差异性(即数据内在的结构),它们就称为原始数据的主成分。由于这些变量不相关,因此他们无重叠的各自解释一部分差异性。依照每个变量解释的差异性大小排序,它们称为第一主成分,第二主成分,以此类推

PCA旨在找到数据中的主成分,并利用这些主成分表征原始数据,从而达到将为的目的

工作原理可以由两个角度解释


  • 最大化投影方差(让数据在主轴上投影的方差尽可能大)
  • 最小化平方误差(样本点到超平面的垂直距离足够近)

做法是:数据中心化之后,对样本数据协方差矩阵进行特征分解,选取前d个最大的特征值对应的特征向量,即可将数据从原来的p维降到d维,也可根据奇异值分解来求解主成分


二.优缺点


优点


  • 降低数据的复杂型,识别最重要的多个特征
  • 使得数据集更易使用
  • 降低算法的计算开销
  • 去除噪声
  • 使得结果更容易理解
  • 仅仅需要方差衡量信息量,不受数据集以外的因素影响
  • 各主成分之间正交,可以消除原始数据成分间的相互影响的因素
  • 计算方法简单,主要运算是特征值分解,易于实现

缺点


  • 不一定需要,且可能损失有用信息
  • 主成分各特征维度的含义具有一定的模糊性,不如原始样本特征的解释性强
  • 方差小的非主成分也可能含有对样本差异的重要信息,因降维丢弃可能对后续数据处理有影响
  • PCA原理主要是为了消除变量之间的相关性,并且假设这种相关性是线性的,对于非线性的依赖关系则不能得到很好的结果
  • PCA假设变量服从高斯分布,当变量不服从高斯分布(如均匀分布)时,会发生尺度缩放与旋转
  • 对降维最终得到的数目,也就是潜在的隐变量的数目,不能很好地估计

三.适用场景


  • 经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特征
  • 常应用在文本处理,自然语言处理,人脸识别,图片识别等领域
  • 可以做在数据预处理阶段非常重要的一环
  • 它是一种非监督式的降维方法,因此适用于不带标签的数据集,对于带有标签的可以采用LDA
  • 数据分布是位于相同平面上,数据中存在线性结构
  • 数据量较大的数据集:数据量大是指数据记录多和维度多两种情况,PCA对大型数据集的处理效率高
  • 更少的正则化处理:选择较多的主成分将导致更少的平滑,因为能保留很多特征,减少正则化
  • 根据方差自主控制特征数量:最大的主成分的数量会小于或等于特征的数量,即PCA可以输出全部的特征,具体取决于选择特征中解释的方差比例

四.常见面试题

1.为什么PCA不推荐用来避免过拟合?


  • PCA最大的问题就在于它是无监督的
  • PCA是高维环境下能想到的最直接的方案。比如人脸识别,维度往往成千上万,但识别身份的话,每个人样本最多也就几十,过拟合现象是很严重的。由此产生了人脸识别早期研究中影响极大的工作eigenface,其实就是先用PCA对人脸图像进行降维,然后再训练分类器
  • 但PCA是无监督的,它虽然能解决过拟合问题,但又会带来欠拟合问题。拿人脸识别来说,eigenface虽然能训练出识别能力尚可的分类器,但因为分类信息并不一定存在于前几个主成分上,所以用前几个主成分来做分类的话,会丢失后面变化细微的主成分上存在的大量分类信息。正因为如此,之后又出现了fisherface等有监督降维工作,识别能力也因此提高了很多
  • 深度学习也是这样,pre-training阶段很多训练都是无监督的,其实和PCA异曲同工,但之后一定要有进一步的fine-tuning,把无监督提取出来的特征transfer到我们的目标任务上,这样得到的特征才真正work
  • 所以说,类似于PCA和auto-encoder这样的无监督方法,提取的特征不会太差,但也不会太好,它最大的作用就是总结出一些关于X的较高层次的抽象知识,为之后的有监督训练提供一个比原始特征空间更好的起点。实际上,无监督最具优势之处就在于它的通用性:不管y是什么,只要有x就行,之后可以在各种各样的y上进一步训练。有证据显示,人类在婴儿时期也是先有一个无监督学习阶段,然后才是各种有监督学习

2.简单解释一下什么是维数灾难?


  • 维数灾难泛指在处理高维数据时所产生的问题。当数据真的很高维的时候(特征很多的时候),高维空间里的数据互相之间将有着相似的距离。也就是没有谁和谁更近,谁和谁更远的概念了。距离的概念在高维空间就失效了,这也就意味着,需要更多的样本,才能得到确定性
  • 随着特征的数量上升,那么数据的可能性(组合)也随之上升,使用固定百分比训练数据也以几何速度增长
  • 随着数据的维度上升,收敛速率会大幅度下降

3.降维的目的是什么?

降维是将高维度的数据保留下最重要的一些特征,去除噪声和不重要的特征,从而实现提升数据处理速度的目的。在实际的生产和应用中,降维在一定的信息损失范围内,可以为我们节省大量的时间和成本。降维也成为应用非常广泛的数据预处理方法

4.PCA的具体计算步骤?


  • 对数据进行归一化处理
  • 计算归一化后的数据集的协方差矩阵
  • 计算协方差矩阵的特征值和特征向量
  • 保留最重要的k个特征(通常k要小于n)
  • 找出k个特征值相应的特征向量
  • 将m*n的数据集乘以k个n维的特征向量(n*k),得到最后降维的数据

5.PCA中的第一,第二主成分分别是什么?怎么确定?

主成分分析是设法将原来众多具有一定相关性(比如p个指标),重新组合成一组新的互相无关的综合指标来代替原来的指标

主成分分析,是考察多个变量间相关性的一种多元统计方法,研究如何通过少数几个主成分来揭示多个变量间的内部结构,即从原始变量中导出少数几个主成分,使它们尽可能多地保留原始变量的信息,且彼此之间互不相关,通常数学上的处理就是将原来的p个指标作线性组合,作为新的综合指标

最经典的做法就是:


  • 用F1(选取的第一个线性组合,即第一个综合指标)的方差来表达,即Var(F1) 越大,表示F1包含的信息越多。因此在所有的线性组合中选取的F1应该是方差最大的,故称F1为第一主成分
  • 如果第一主成分不足以代表原来p个指标的信息,再考虑选取F2即选第二个线性组合,为了有效地反映原来信息,F1已有的信息就不需要再出现在F2中,用数学语言表达就是要求Cov(F1,F2) = 0,则称F2为第二主成分
  • 以此类推可以构造出第三,第四,...,第p个主成分

6.PCA降维的准则?


  • 最近重构性:样本集中所有点,重构后的点距离原来的点的误差之和最小
  • 最大可分性:样本在低维空间的投影尽可能分开

7.最大差异性的主成分方向?

通过计算数据矩阵的协方差矩阵,然后得到协方差矩阵的特征值特征向量,选择特征值最大(即方差最大)的k个特征所对应的特征向量组成的矩阵

这样就可以将数据矩阵转换到新的空间当中,实现数据特征的降维

8.PCA的实现方式?

①基于特征值分解协方差矩阵实现PCA算法

输入:数据集X = {X1,X2,X3,...,Xn},需要降到k维


  • 去平均值(即去中心化),即每一位特征减去各自的平均值
  • 计算协方差矩阵,注:这里除样本数量n或n-1,其实对求出的特征向量没有影响
  • 用特征值分解方法求协方差矩阵的特征值与特征向量
  • 对特征值从大到小排序,选择其中最大的k个。然后将其对应的k个特征向量分别作为行向量组成特征向量矩阵p
  • 将数据转换到k个特征向量构建的新空间中,即Y=PX

②基于SVD分解协方差矩阵实现PCA算法

输入:数据集X = {X1,X2,X3,...,Xn},需要降到k维


  • 去平均值,即每一维特征减去各自的平均值
  • 计算协方差矩阵
  • 通过SVD计算协方差矩阵的特征值和特征向量
  • 对特征值从大到小排序,选择其中最大的k个。然后将其对应的k个特征向量分别作为列向量组成特征向量矩阵
  • 将数据转换到k个特征向量构建的新空间中

推荐阅读
  • 2019年斯坦福大学CS224n课程笔记:深度学习在自然语言处理中的应用——Word2Vec与GloVe模型解析
    本文详细解析了2019年斯坦福大学CS224n课程中关于深度学习在自然语言处理(NLP)领域的应用,重点探讨了Word2Vec和GloVe两种词嵌入模型的原理与实现方法。通过具体案例分析,深入阐述了这两种模型在提升NLP任务性能方面的优势与应用场景。 ... [详细]
  • 计算机学报精选论文概览(2020-2022)
    本文汇总了2020年至2022年间《计算机学报》上发表的若干重要论文,旨在为即将投稿的研究者提供参考。 ... [详细]
  • 非计算机专业的朋友如何拿下多个Offer
    大家好,我是归辰。秋招结束后,我已顺利入职,并应公子龙的邀请,分享一些秋招面试的心得体会,希望能帮助到学弟学妹们,让他们在未来的面试中更加顺利。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • 第三届人工智能、网络与信息技术国际学术会议(AINIT 2022)
    20223rdInternationalSeminaronArtificialIntelligence,NetworkingandInformationTechnology第三届 ... [详细]
  • python绘制拟合回归散点图_机器学习之利用Python进行简单线性回归分析
    前言:在利用机器学习方法进行数据分析时经常要了解变量的相关性,有时还需要对变量进行回归分析。本文首先对人工智能机器学习深度学习、相关分析因果分析回归分析 ... [详细]
  • 探索CNN的可视化技术
    神经网络的可视化在理论学习与实践应用中扮演着至关重要的角色。本文深入探讨了三种有效的CNN(卷积神经网络)可视化方法,旨在帮助读者更好地理解和优化模型。 ... [详细]
  • 在2019中国国际智能产业博览会上,百度董事长兼CEO李彦宏强调,人工智能应务实推进其在各行业的应用。随后,在“ABC SUMMIT 2019百度云智峰会”上,百度展示了通过“云+AI”推动AI工业化和产业智能化的最新成果。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 深入解析监督学习的核心概念与应用
    本文深入探讨了监督学习的基本原理及其广泛应用。监督学习作为机器学习的重要分支,通过利用带有标签的训练数据,能够有效构建预测模型。文章详细解析了监督学习的关键概念,如特征选择、模型评估和过拟合问题,并介绍了其在图像识别、自然语言处理等领域的实际应用。 ... [详细]
  • 视觉图像的生成机制与英文术语解析
    近期,Google Brain、牛津大学和清华大学等多家研究机构相继发布了关于多层感知机(MLP)在视觉图像分类中的应用成果。这些研究深入探讨了MLP在视觉任务中的工作机制,并解析了相关技术术语,为理解视觉图像生成提供了新的视角和方法。 ... [详细]
  • 魅族Flyme 7正式发布:全面解析与亮点介绍
    在22日晚的发布会上,魅族不仅推出了m15、15和15 Plus三款新机型,还正式发布了全新的Flyme 7系统。Flyme 7在保持流畅体验的基础上,进一步增强了功能性和实用性,为用户带来更加丰富的使用体验。首批适配包已准备就绪,将逐步推送给现有设备。 ... [详细]
  • 利用TensorFlow.js在网页浏览器中实现高效的人脸识别JavaScript接口
    作者|VincentMühle编译|姗姗出品|人工智能头条(公众号ID:AI_Thinker)【导读】随着深度学习方法的应用,浏览器调用人脸识别技术已经得到了更广泛的应用与提升。在 ... [详细]
  • 基本价值在于商业落地,解决实际问题;真正的价值在于解决高价值问题,有两类:一解决民生、国力问题,提高国家的综合国力;二让人们的生活真正的更加美好。 近两年,很多学术大牛,进入工业界 ... [详细]
  • 中文分词_中文分词技术小结几大分词引擎的介绍与比较
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了中文分词技术小结几大分词引擎的介绍与比较相关的知识,希望对你有一定的参考价值。笔者想说:觉得英文与中文分词有很大的区别, ... [详细]
author-avatar
violet
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有